package main

import (
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/mysql"
)

/*
结构体标签grom

		   （1）-： 忽略，不映射这个字段    eg: `gorm:"-"`  ，适合：一些冗余字段，不想在数据库中体现，只想在结构体中体现

			（2）primary_key：主键     eg: `gorm:"primary_key"`

			PS：如果是想要加联合主键，在每个字段后加入 `gorm:"primary_key"`即可
			例如：即可将StuID和Name作为联合主键

			（3）AUTO_INCREMENT(auto_increment)：自增    eg:  `gorm:"AUTO_INCREMENT"`

			（4）not null：不为空，默认为空    eg: `gorm:"not null"`

			（5）index：索引，  eg: `gorm:"index"`

	        创建索引并命名：eg: `gorm:"index:idx_name_code"`

		（6）unique_index：唯一索引     eg: `gorm:"unique_index"`

	      //唯一性索引unique index和一般索引normal index最大的差异就是在索引列上增加了一层唯一约束。添加唯一性索引的数据列可以为  空，但是只要存在数据值，就必须是唯一的。

		（7）unique：唯一   eg: `gorm:"unique"`

		（8）column：指定列名   eg: `gorm:"column:user_name"`

		（9）size：字符串长度,默认为255   eg:`gorm:"size:10"`

		（10）default `default:'男'` 默认值
		（11）type：设置sql类型  eg: `gorm:"type:int(2)"`
*/
type User struct {
	Uid    int    `gorm:"primary_key;AUTO_INCREMENT"`
	Uname  string `gorm:"not null"`
	UAge   int    //`gorm:"type:int(20)"`不好使用
	USex   string //`grom:"default:'男'"` 这个也不好使
	UAdd   string `gorm:"column:add"`
	UEmail string //`grom:"size:10"`这个也不好使
	Desc   string `gorm:"-"`
	Std    int    `gorm:"unique_index"`
}

func main() {
	db, err := gorm.Open("mysql", "root:123456@tcp(192.168.11.189:3306)/lztest?charset=utf8&parseTime=True&loc=Local")

	if err != nil {
		panic(err)
	}
	defer db.Close()

	db.CreateTable(&User{})

}
